/*
 * Copyright (C) 2018 yixun All Rights Reserved.
 * 
 * BusinessLog.java
 */
package com.emm.yixun.common.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.github.sd4324530.fastexcel.annotation.MapperCell;
import org.apache.commons.lang.StringUtils;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * [文件名称]<br>
 * BusinessLog.java<br>
 * <br>
 * [文件描述]<br>
 *  pojo bean<br>
 * <br>
 * [修改记录]<br>
 * 2018-11-27 10:39:30 创建<br>
 * @version 1.00
 */
public class PaymentStages implements Serializable{
    /**
	 * 序列化UID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 *主键
	 */
	private Long id;

	private Long projectId;

	@MapperCell(cellName = "房间")
	private String combinedName;

	private String projectName;
	private String industMark;
	private String roomName;
	private BigDecimal decorationMoney;
	private String customerName;
	private String userName;
	private String customerId;

	@JSONField (format="yyyy/MM/dd")
	private String signDate;
	@JSONField (format="yyyy/MM/dd")
	private String subscribeDate;
	private BigDecimal totalNeed = new BigDecimal(0);
	private BigDecimal totalHave = new BigDecimal(0);
	private String receivablesFunds;
	private String paymentMethod;
	private String decorationPaymentMethod;
	private String bankCode;

	private BigDecimal totalNeedAdvance = new BigDecimal(0);
	private BigDecimal totalHaveAdvance = new BigDecimal(0);

	public BigDecimal getTotalNeedAdvance() {
		return totalNeedAdvance;
	}

	public void setTotalNeedAdvance(BigDecimal totalNeedAdvance) {
		this.totalNeedAdvance = totalNeedAdvance;
	}

	public BigDecimal getTotalHaveAdvance() {
		return totalHaveAdvance;
	}

	public void setTotalHaveAdvance(BigDecimal totalHaveAdvance) {
		this.totalHaveAdvance = totalHaveAdvance;
	}

	public String getBankCode() {
		return bankCode;
	}

	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}

	public String getDecorationPaymentMethod() {
		return decorationPaymentMethod;
	}

	public void setDecorationPaymentMethod(String decorationPaymentMethod) {
		this.decorationPaymentMethod = decorationPaymentMethod;
	}

	private String needTime1;//应收时间
	private BigDecimal needAmt1 = new BigDecimal(0);//应收金额
	private BigDecimal haveAmt1 = new BigDecimal(0);;//实收金额或者欠款
	private BigDecimal balanceAmt1 = new BigDecimal(0);

	private String needTime2;//应收时间
	private BigDecimal needAmt2 = new BigDecimal(0);;//应收金额
	private BigDecimal haveAmt2 = new BigDecimal(0);;//实收金额或者欠款
	private BigDecimal balanceAmt2 = new BigDecimal(0);

	private String needTime3;//应收时间
	private BigDecimal needAmt3 = new BigDecimal(0);;//应收金额
	private BigDecimal haveAmt3 = new BigDecimal(0);;//实收金额或者欠款
	private BigDecimal balanceAmt3 = new BigDecimal(0);

	private String needTime4;//应收时间
	private BigDecimal needAmt4 = new BigDecimal(0);;//应收金额
	private BigDecimal haveAmt4 = new BigDecimal(0);;//实收金额或者欠款
	private BigDecimal balanceAmt4 = new BigDecimal(0);

	private String needTime5;//应收时间
	private BigDecimal needAmt5 = new BigDecimal(0);;//应收金额
	private BigDecimal haveAmt5 = new BigDecimal(0);;//实收金额或者欠款
	private BigDecimal balanceAmt5 = new BigDecimal(0);

	private String contactType;
	private String agentName;
	private String groupName;

	private String netSign;
	private String signCode;
	private String customerPhone;
	private String customerDocumentNumber;
	private String contractAddress;
	private String informedWay;
	private String buildingArea;
	private String billingArea;

	private String signPrice;
	private String signAmount;
	private String calculateArea;
	private String discountNote;
	private Long signedId;
	private Long subscribeId;

	private String coownerName;
	private String coownerDocumentNumber;

	private String subscribeAmount;

	//实收房款
	private String housingFund;
	private String needFirstFund;
	private String haveFirstFund;
	private String balanceFirstFund;

	//按揭
	private String needBankFund;
	private String haveBankFund;
	private String bankName;
	private String haveBankFundDate;
	private String balanceBankFund;

	//期间
	private String periodFirstFund;
	private String periodBankFund;
	private String periodTotalFund;

	//支付方式
	private String statementType;
	private String realAmount;
	//款项名称
	private String housingFundType;
	//款项类型
	private String paymentType;
	//交易类型
	private String businessType;

	private String payerName;

	private String billCode;

	private String billType;
	//单据类型
	private String receiptType;

	/**
	 *应收款标识（⊙部分收款 ! 多收）
	 */
	private String receivedFlag;

	private Long expectedDays;

	private BigDecimal totalBalance;
	private String totalBalanceAmount;
	private String customerFamilyName;

	private String buildingName;
	private String premisesName;

	public BigDecimal getBalanceAmt1() {
		return balanceAmt1;
	}

	public void setBalanceAmt1(BigDecimal balanceAmt1) {
		this.balanceAmt1 = balanceAmt1;
	}

	public BigDecimal getBalanceAmt2() {
		return balanceAmt2;
	}

	public void setBalanceAmt2(BigDecimal balanceAmt2) {
		this.balanceAmt2 = balanceAmt2;
	}

	public BigDecimal getBalanceAmt3() {
		return balanceAmt3;
	}

	public void setBalanceAmt3(BigDecimal balanceAmt3) {
		this.balanceAmt3 = balanceAmt3;
	}

	public BigDecimal getBalanceAmt4() {
		return balanceAmt4;
	}

	public void setBalanceAmt4(BigDecimal balanceAmt4) {
		this.balanceAmt4 = balanceAmt4;
	}

	public BigDecimal getBalanceAmt5() {
		return balanceAmt5;
	}

	public void setBalanceAmt5(BigDecimal balanceAmt5) {
		this.balanceAmt5 = balanceAmt5;
	}

	public String getTotalBalanceAmount() {
		return totalBalanceAmount;
	}

	public void setTotalBalanceAmount(String totalBalanceAmount) {
		this.totalBalanceAmount = totalBalanceAmount;
	}

	public String getPremisesName() {
		return premisesName;
	}

	public void setPremisesName(String premisesName) {
		this.premisesName = premisesName;
	}

	public String getCustomerFamilyName() {
		return customerFamilyName;
	}

	public void setCustomerFamilyName(String customerFamilyName) {
		this.customerFamilyName = customerFamilyName;
	}
	public String getReceivedFlag() {
		return receivedFlag;
	}

	public void setReceivedFlag(String receivedFlag) {
		this.receivedFlag = receivedFlag;
	}

	public Long getExpectedDays() {
		return expectedDays;
	}

	public void setExpectedDays(Long expectedDays) {
		this.expectedDays = expectedDays;
	}

	public BigDecimal getTotalBalance() {
		return totalBalance;
	}

	public void setTotalBalance(BigDecimal totalBalance) {
		this.totalBalance = totalBalance;
	}

	public String getStatementType() {
		return statementType;
	}

	public void setStatementType(String statementType) {
		this.statementType = statementType;
	}

	public String getRealAmount() {
		return realAmount;
	}

	public void setRealAmount(String realAmount) {
		this.realAmount = realAmount;
	}

	public String getHousingFundType() {
		return housingFundType;
	}

	public void setHousingFundType(String housingFundType) {
		this.housingFundType = housingFundType;
	}

	public String getPaymentType() {
		return paymentType;
	}

	public void setPaymentType(String paymentType) {
		this.paymentType = paymentType;
	}

	public String getBusinessType() {
		return businessType;
	}

	public void setBusinessType(String businessType) {
		this.businessType = businessType;
	}

	public String getPayerName() {
		return payerName;
	}

	public void setPayerName(String payerName) {
		this.payerName = payerName;
	}

	public String getBillCode() {
		return billCode;
	}

	public void setBillCode(String billCode) {
		this.billCode = billCode;
	}

	public String getBillType() {
		return billType;
	}

	public void setBillType(String billType) {
		this.billType = billType;
	}

	public String getReceiptType() {
		return receiptType;
	}

	public void setReceiptType(String receiptType) {
		this.receiptType = receiptType;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public String getHaveBankFundDate() {
		return haveBankFundDate;
	}

	public void setHaveBankFundDate(String haveBankFundDate) {
		this.haveBankFundDate = haveBankFundDate;
	}

	public String getBalanceBankFund() {
		return balanceBankFund;
	}

	public void setBalanceBankFund(String balanceBankFund) {
		this.balanceBankFund = balanceBankFund;
	}

	public String getPeriodFirstFund() {
		return periodFirstFund;
	}

	public void setPeriodFirstFund(String periodFirstFund) {
		this.periodFirstFund = periodFirstFund;
	}

	public String getPeriodBankFund() {
		return periodBankFund;
	}

	public void setPeriodBankFund(String periodBankFund) {
		this.periodBankFund = periodBankFund;
	}

	public String getPeriodTotalFund() {
		return periodTotalFund;
	}

	public void setPeriodTotalFund(String periodTotalFund) {
		this.periodTotalFund = periodTotalFund;
	}

	public String getHousingFund() {
		return housingFund;
	}

	public void setHousingFund(String housingFund) {
		this.housingFund = housingFund;
	}

	public String getNeedFirstFund() {
		return needFirstFund;
	}

	public void setNeedFirstFund(String needFirstFund) {
		this.needFirstFund = needFirstFund;
	}

	public String getHaveFirstFund() {
		return haveFirstFund;
	}

	public void setHaveFirstFund(String haveFirstFund) {
		this.haveFirstFund = haveFirstFund;
	}

	public String getBalanceFirstFund() {
		return balanceFirstFund;
	}

	public void setBalanceFirstFund(String balanceFirstFund) {
		this.balanceFirstFund = balanceFirstFund;
	}

	public String getNeedBankFund() {
		return needBankFund;
	}

	public void setNeedBankFund(String needBankFund) {
		this.needBankFund = needBankFund;
	}

	public String getHaveBankFund() {
		return haveBankFund;
	}

	public void setHaveBankFund(String haveBankFund) {
		this.haveBankFund = haveBankFund;
	}

	public String getSubscribeAmount() {
		return subscribeAmount;
	}

	public void setSubscribeAmount(String subscribeAmount) {
		this.subscribeAmount = subscribeAmount;
	}

	public String getCoownerName() {
		return coownerName;
	}

	public void setCoownerName(String coownerName) {
		this.coownerName = coownerName;
	}

	public String getCoownerDocumentNumber() {
		return coownerDocumentNumber;
	}

	public void setCoownerDocumentNumber(String coownerDocumentNumber) {
		this.coownerDocumentNumber = coownerDocumentNumber;
	}

	public String getCustomerDocumentNumber() {
		return customerDocumentNumber;
	}

	public void setCustomerDocumentNumber(String customerDocumentNumber) {
		this.customerDocumentNumber = customerDocumentNumber;
	}

	public String getBuildingName() {
		return buildingName;
	}

	public void setBuildingName(String buildingName) {
		this.buildingName = buildingName;
	}

	public String getBillingArea() {
		return billingArea;
	}

	public void setBillingArea(String billingArea) {
		this.billingArea = billingArea;
	}

	public String getSubscribeDate() {
		return subscribeDate;
	}

	public void setSubscribeDate(String subscribeDate) {
		this.subscribeDate = subscribeDate;
	}

	public String getNetSign() {
		return netSign;
	}

	public void setNetSign(String netSign) {
		this.netSign = netSign;
	}

	public String getSignCode() {
		return signCode;
	}

	public void setSignCode(String signCode) {
		this.signCode = signCode;
	}

	public String getCustomerPhone() {
		return customerPhone;
	}

	public void setCustomerPhone(String customerPhone) {
		this.customerPhone = customerPhone;
	}

	public String getContractAddress() {
		return contractAddress;
	}

	public void setContractAddress(String contractAddress) {
		this.contractAddress = contractAddress;
	}

	public String getInformedWay() {
		return informedWay;
	}

	public void setInformedWay(String informedWay) {
		this.informedWay = informedWay;
	}

	public String getBuildingArea() {
		return buildingArea;
	}

	public void setBuildingArea(String buildingArea) {
		this.buildingArea = buildingArea;
	}

	public String getSignPrice() {
		return signPrice;
	}

	public void setSignPrice(String signPrice) {
		this.signPrice = signPrice;
	}

	public String getSignAmount() {
		return signAmount;
	}

	public void setSignAmount(String signAmount) {
		this.signAmount = signAmount;
	}

	public String getCalculateArea() {
		return calculateArea;
	}

	public void setCalculateArea(String calculateArea) {
		this.calculateArea = calculateArea;
	}

	public String getDiscountNote() {
		return discountNote;
	}

	public void setDiscountNote(String discountNote) {
		this.discountNote = discountNote;
	}

	public Long getSignedId() {
		return signedId;
	}

	public void setSignedId(Long signedId) {
		this.signedId = signedId;
	}

	public Long getSubscribeId() {
		return subscribeId;
	}

	public void setSubscribeId(Long subscribeId) {
		this.subscribeId = subscribeId;
	}

	public String getGroupName() {
		return groupName;
	}

	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}

	public String getAgentName() {
		return agentName;
	}

	public void setAgentName(String agentName) {
		this.agentName = agentName;
	}

	public String getContactType() {
		if("1".equals(contactType)){
			return "网签";
		}else if("2".equals(contactType)){
			return "草签";
		}
		return contactType;
	}

	public void setContactType(String contactType) {
		this.contactType = contactType;
	}

	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public String getNeedTime1() {
		return needTime1;
	}

	public void setNeedTime1(String needTime1) {
		this.needTime1 = needTime1;
	}

	public BigDecimal getNeedAmt1() {
		return needAmt1;
	}

	public void setNeedAmt1(BigDecimal needAmt1) {
		this.needAmt1 = needAmt1;
	}

	public BigDecimal getHaveAmt1() {
		return needAmt1.subtract(haveAmt1);
	}

	public void setHaveAmt1(BigDecimal haveAmt1) {
		this.haveAmt1 = haveAmt1;
	}

	public String getNeedTime2() {
		return needTime2;
	}

	public void setNeedTime2(String needTime2) {
		this.needTime2 = needTime2;
	}

	public BigDecimal getNeedAmt2() {
		return needAmt2;
	}

	public void setNeedAmt2(BigDecimal needAmt2) {
		this.needAmt2 = needAmt2;
	}

	public BigDecimal getHaveAmt2() {
		return needAmt2.subtract(haveAmt2);
	}

	public void setHaveAmt2(BigDecimal haveAmt2) {
		this.haveAmt2 = haveAmt2;
	}

	public String getNeedTime3() {
		return needTime3;
	}

	public void setNeedTime3(String needTime3) {
		this.needTime3 = needTime3;
	}

	public BigDecimal getNeedAmt3() {
		return needAmt3;
	}

	public void setNeedAmt3(BigDecimal needAmt3) {
		this.needAmt3 = needAmt3;
	}

	public BigDecimal getHaveAmt3() {
		return needAmt3.subtract(haveAmt3);
	}

	public void setHaveAmt3(BigDecimal haveAmt3) {
		this.haveAmt3 = haveAmt3;
	}

	public String getNeedTime4() {
		return needTime4;
	}

	public void setNeedTime4(String needTime4) {
		this.needTime4 = needTime4;
	}

	public BigDecimal getNeedAmt4() {
		return needAmt4;
	}

	public void setNeedAmt4(BigDecimal needAmt4) {
		this.needAmt4 = needAmt4;
	}

	public BigDecimal getHaveAmt4() {
		return needAmt4.subtract(haveAmt4);
	}

	public void setHaveAmt4(BigDecimal haveAmt4) {
		this.haveAmt4 = haveAmt4;
	}

	public String getNeedTime5() {
		return needTime5;
	}

	public void setNeedTime5(String needTime5) {
		this.needTime5 = needTime5;
	}

	public BigDecimal getNeedAmt5() {
		return needAmt5;
	}

	public void setNeedAmt5(BigDecimal needAmt5) {
		this.needAmt5 = needAmt5;
	}

	public BigDecimal getHaveAmt5() {
		return needAmt5.subtract(haveAmt5);
	}

	public void setHaveAmt5(BigDecimal haveAmt5) {
		this.haveAmt5 = haveAmt5;
	}

	public String getPaymentMethod() {
		return paymentMethod;
	}

	public void setPaymentMethod(String paymentMethod) {
		this.paymentMethod = paymentMethod;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getProjectId() {
		return projectId;
	}

	public void setProjectId(Long projectId) {
		this.projectId = projectId;
	}

	public String getCombinedName() {
		return combinedName;
	}

	public void setCombinedName(String combinedName) {
		this.combinedName = combinedName;
	}

	public String getIndustMark() {
		return industMark;
	}

	public void setIndustMark(String industMark) {
		this.industMark = industMark;
	}

	public String getRoomName() {
		return roomName;
	}

	public void setRoomName(String roomName) {
		this.roomName = roomName;
	}

	public BigDecimal getDecorationMoney() {
		return decorationMoney;
	}

	public void setDecorationMoney(BigDecimal decorationMoney) {
		this.decorationMoney = decorationMoney;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getSignDate() {
		return signDate;
	}

	public void setSignDate(String signDate) {
		this.signDate = signDate;
	}

	public BigDecimal getTotalNeed() {
		return totalNeed;
	}

	public void setTotalNeed(BigDecimal totalNeed) {
		this.totalNeed = totalNeed;
	}

	public BigDecimal getTotalHave() {

		return totalHave;
	}

	public void setTotalHave(BigDecimal totalHave) {
		this.totalHave = totalHave;
	}

	public String getReceivablesFunds() {
		return receivablesFunds;
	}

	public void setReceivablesFunds(String receivablesFunds) {
		this.receivablesFunds = receivablesFunds;
	}
}
